???		* allow chipset loading
This restriction may not be desirable because:  Attempting to load a 2nd map file while the chipsets of a 1st map are still loading will cause the 2nd map loading sequence to fail.
This is because the 2nd set of chipsets won't be allowed to load while the 1st set of chipsets are loading.


- Global state init -
isLoadingChipsets = false		(? reconsider)
canDraw = false
* allow chipset loading  (? reconsider)
* prevent drawing, until 1+ layers  &  1+ chipsets





- Global state rules -

Request chipset image files
* prevent chipset loading, until all chipset loading completes
Wait for all requested chipset images, then...
* allow chipset loading

* prevent drawing, until 1+ layers  &  1+ chipsets
create layer
Wait for all requested chipset images, then...
* allow drawing





- Wait for state promises? -
NO.
Instead, fail a task immediately if conditions don't allow it.




- Examples -

- Checking a condition -
if( canDraw() ){
	setTile(layer, x, y, cxy)
}

- Checking a state-flag -
function canDraw(){
	if( hasLayer && hasChipset )
	yes:	allow
	no:		forbid
}

- Setting a state-flag -
Request chipset files
is loading a chipset = true
Finished loading all requested chipset files
is loading a chipset = false